// MenuBbsState.h: interface for the CMenuBbsState class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_MENUBBSSTATE_H__BB6B803A_2E56_49E7_BF43_A70F3CF40A39__INCLUDED_)
#define AFX_MENUBBSSTATE_H__BB6B803A_2E56_49E7_BF43_A70F3CF40A39__INCLUDED_

#include "BaseBbsState.h"

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CMenuBbsState : public CBaseBbsState 
{
protected:

	typedef struct tagMenuItem : public CRect
	{
		char accessChar;
		char delimChar;
		tagMenuItem(int l, int t, int r, int b) : CRect(l, t, r, b)
		{
		}
		tagMenuItem() {}
	} MenuItem ;

	CArray<MenuItem, const MenuItem&> m_menuItems;
	void clearOldRect();
	void compactMenuItem(MenuItem *pItem, int right);
	BOOL isMenuAccessChar(char c);
	void removeLessPatternItems();
	int m_oldItemIndex;

public:
	virtual void Deactivate();

public:
	CMenuBbsState();
	virtual ~CMenuBbsState();

};

#endif // !defined(AFX_MENUBBSSTATE_H__BB6B803A_2E56_49E7_BF43_A70F3CF40A39__INCLUDED_)
